package utils

import (
	"fmt"
	"strings"
)

// 隐藏手机号的中间部分
func HidePhoneNumber(phone string) string {
	// 移除空格和非数字字符
	phone = strings.ReplaceAll(phone, " ", "")
	phone = strings.ReplaceAll(phone, "-", "")

	// 检查手机号长度
	length := len(phone)
	if length < 7 {
		return "Invalid phone number" // 如果手机号长度小于7位，返回错误
	}

	// 获取前3位和后4位（根据实际手机号长度动态调整）
	prefix := phone[:3]
	suffix := phone[length-4:]

	// 根据手机号长度来生成适当的隐藏字符串
	masked := fmt.Sprintf("%s****%s", prefix, suffix)

	// 对于更长的手机号（例如国际号段），可以进一步处理
	if length > 11 {
		// 假设超过11位的部分我们也可以按相同方式隐藏
		masked = fmt.Sprintf("%s****%s", phone[:3], phone[length-7:])
	}

	return masked
}
